package v1

import (
	"bytes"
	"fmt"
	"github.com/gin-gonic/gin"
	"github.com/wejectchen/ginblog/model"
	"github.com/wejectchen/ginblog/utils/errmsg"
	"golang.org/x/image/webp"
	"image/jpeg"
	"io/ioutil"
	"log"
	"net/http"
	"strconv"
)

// RandUser 随机添加用户信息
func RandUser(c *gin.Context) {
	num, _ := strconv.Atoi(c.Query("num"))
	if num <= 0 {
		num = 10
	}
	code := model.RandUserModel(num)
	c.JSON(
		http.StatusOK, gin.H{
			"status":  code,
			"data":    "随机增加" + strconv.Itoa(num) + "条数据",
			"message": errmsg.GetErrMsg(code),
		},
	)
}

func TestData(c *gin.Context) {
	var user model.User
	user.Username = "小朋友"
	user.Password = "xiaopengyou123"
	user.Role = 999
	code := model.CreateUser(&user)
	fmt.Println(code)
	fmt.Println("写入用户信息", user, "用户role", user.Role)
	c.JSON(
		http.StatusOK, gin.H{
			"status":  code,
			"message": errmsg.GetErrMsg(code),
		},
	)
}

// Webp2Jpg 把webp图片转为jpg格式
// go get -u golang.org/x/image/webp
func Webp2Jpg() {
	// 读取WebP文件
	webpData, err := ioutil.ReadFile("example.webp")
	if err != nil {
		log.Fatalf("read file: %v", err)
	}

	// 解码WebP图片
	img, err := webp.Decode(bytes.NewReader(webpData))
	if err != nil {
		log.Fatalf("decode webp: %v", err)
	}

	// 如果需要的话，可以在这里修改图片质量等参数
	// jpegOptions := &jpeg.Options{Quality: 95}

	// 创建一个新的buffer用于存储JPEG数据
	jpegBuffer := new(bytes.Buffer)

	// 将图片编码为JPEG格式
	err = jpeg.Encode(jpegBuffer, img, nil)
	if err != nil {
		log.Fatalf("encode jpeg: %v", err)
	}

	// 将JPEG数据写入文件
	err = ioutil.WriteFile("example.jpg", jpegBuffer.Bytes(), 0666)
	if err != nil {
		log.Fatalf("write file: %v", err)
	}
}
